package com.ruoyi.plus.pub.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.plus.pub.domain.PubNoticePlus;

import java.util.List;

/**
 * 系统公告通知Service接口
 *
 */
public interface IPubNoticePlusService extends IService<PubNoticePlus> {

    /**
     * 查询系统公告通知列表
     *
     * @param pubNoticePlus 系统公告通知
     * @return 系统公告通知集合
     */
    List<PubNoticePlus> selectPubNoticePlusList(PubNoticePlus pubNoticePlus);

    /**
     * 获取用户通知列表
     *
     * @param pubNoticePlus
     * @return
     */
    List<PubNoticePlus> apiGetNotices(PubNoticePlus pubNoticePlus);



    /**
     * 修改公告通知, 当修改通知的发布状态需同时更新通知接收人表
     *
     * @param pubNoticePlus
     * @return
     */
    boolean updatePubNoticePlus(PubNoticePlus pubNoticePlus);

    /**
     * 删除系统公告通知
     */
    boolean removeNotice(List<Long> list);

    /**
     * 获取我的公告
     *
     * @param pubNoticePlus
     * @return
     */
    List<PubNoticePlus> myNotices(PubNoticePlus pubNoticePlus);

    /**
     * 定时发布通知
     */
    void timingNotice();

    /**
     * 给用户发送通知
     *
     * @param userIds  用户id
     * @param title   标题
     * @param content 内容
     * @return 结果
     */
    Boolean apiSaveNotice(List<Long> userIds, String title, String content);

    /**
     * 一键已读
     * @param system 系统类型
     * @return
     */
    Boolean readAll(String system);
}
